package pg;

import java.util.Vector;

public class Objeto {
  private Vector triangulos;
  private Ponto menorPonto;
  private Ponto maiorPonto;
  private float ka, kd, ks, kt, nr, kr;

  public Objeto(int qtdTriangulos, float ka, float kd, float ks, float kt,
                float nr) {
    triangulos = new Vector(qtdTriangulos);
    this.ka = ka;
    this.kd = kd;
    this.ks = ks;
    this.kt = kt;
    this.nr = nr;
    menorPonto = new Ponto(Float.MAX_VALUE, Float.MAX_VALUE,
                           Float.MAX_VALUE);
    maiorPonto = new Ponto(Float.MIN_VALUE, Float.MIN_VALUE,
                           Float.MIN_VALUE);

  }

  public Objeto(int qtdTriangulos, float ka, float kd, float ks, float kr) {
    triangulos = new Vector(qtdTriangulos);
    this.ka = ka;
    this.kd = kd;
    this.ks = ks;
    this.kr = kt;
    menorPonto = new Ponto(Float.MAX_VALUE, Float.MAX_VALUE,
                           Float.MAX_VALUE);
    maiorPonto = new Ponto(Float.MIN_VALUE, Float.MIN_VALUE,
                           Float.MIN_VALUE);

  }

  public void adicionar(Triangulo triangulo) {
    this.triangulos.add(triangulo);
    this.menorPonto.substituirMenor(triangulo.getVertice1());
    this.menorPonto.substituirMenor(triangulo.getVertice2());
    this.menorPonto.substituirMenor(triangulo.getVertice3());
    this.maiorPonto.substituirMaior(triangulo.getVertice1());
    this.maiorPonto.substituirMaior(triangulo.getVertice2());
    this.maiorPonto.substituirMaior(triangulo.getVertice3());
  }

  public Triangulo getTriangulo(int posicao) {
    return (Triangulo)this.triangulos.elementAt(posicao);
  }

  public int getNumTriangulos() {
    return this.triangulos.size();
  }

  public Ponto getPontoMedio() {
    Ponto medio = Ponto.mult(0.5f,Ponto.soma(this.getPontoMaximo(), this.getPontoMinimo()));
    System.out.println(medio);
    return medio;
  }

  public float getKa() {
    return this.ka;
  }

  public float getKd() {
    return this.kd;
  }

  public float getKs() {
    return this.ks;
  }

  public float getKt() {
    return this.kt;
  }

  public float getNr() {
    return this.nr;
  }

  public float getKr() {
    return this.kr;
  }

  public void setKr(float kr) {
    this.kr = kr;
  }

  public void setKa(float ka) {
    this.ka = ka;
  }

  public void setKs(float ks) {
    this.ks = ks;
  }

  public Ponto getPontoMaximo(){
    return this.maiorPonto;
  }

  public Ponto getPontoMinimo(){
    return this.menorPonto;
  }

  public void setKd(float kd) {
    this.kd = kd;
  }

  public void setKt(float kt) {
    this.kt = kt;
  }

  public void setNr(float nr) {
    this.nr = nr;
  }
}
